/* 
 * File:   Trayectoria.h
 * Author: 75.02 - Grupo 7, 2do cuatrimestre 2012.
 *
 * Created on 31 de octubre de 2012, 18:48
 */

#ifndef TRAYECTORIA_H
#define	TRAYECTORIA_H

#include <math.h>
#include "Posicion.h"
#include "ITemporizable.h"
#include "Vector2D.h"
#include "ISerializable.h"
#include "../XML/tinyxml.h"


using namespace TP::Serializacion;
using namespace TP::Matematica;
using namespace TP::Juego::Motorizacion::Fisica;
using namespace TP::Juego::Motorizacion::Sincronizacion;

namespace TP { namespace Juego { namespace Motorizacion { namespace Fisica {
    
class Trayectoria : public ISerializable {
public:
    
    Trayectoria();
    
    Trayectoria(Posicion* pPosicion, Vector2D* pVelocidad, Vector2D* pAceleracion);

    virtual ~Trayectoria();
    
    Posicion* getPosicionInicial();
    
    Posicion* getPosicion();
    
    Ticks desplazar(Ticks pTiempo);
    
    virtual string aXML();
    
    virtual string aXML(const string& pPath);
    
    virtual void parseXML (const string& pDescriptor);
    
    virtual TiXmlElement* aElementoXML ();
    
    virtual void deElementoXML (TiXmlElement* pElemento);
    
    
private:
    Posicion *_posicionInicial
            ,*_posicionActual;
    
    Vector2D  *_velocidadInicial
            , *_velocidadActual
            , *_aceleracion;
};

}}}}

#endif	/* TRAYECTORIA_H */

